package equipamento;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.faces.model.SelectItem;
import javax.naming.NamingException;

import situacao.EntidadeSituacao;
import situacao.Situacao;
import util.ServiceLocator;

public class Equipamentos implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@PostConstruct
	public void iniciar() {
		System.out.println("O Bean Cadastro Funcionario Foi Iniciado");
	}

	@PreDestroy
	public void encerrar() {
		System.out.println("O Bean Cadastro Funcionario foi Encerrado");
	}

	private EntidadeEquipamento equipamento = new EntidadeEquipamento();

	private List<String> situacoes = new ArrayList<String>();
	private List<EntidadeSituacao> situ = new ArrayList<EntidadeSituacao>();
	private String equipamentos = new String();
	private List<EntidadeEquipamento> equip = new ArrayList<EntidadeEquipamento>();

	public List<String> getSituacoes() {
		return situacoes;
	}

	public void setSituacoes(List<String> situacoes) {
		this.situacoes = situacoes;
	}

	public String getEquipamentos() {
		return equipamentos;
	}

	public void setEquipamentos(String equipamentos) {
		this.equipamentos = equipamentos;
	}

	public List<SelectItem> getEquip() throws NamingException {
		Equipamento equi = (Equipamento) ServiceLocator
				.getService("equipamentoBean/remote");

		List<SelectItem> lista = new ArrayList<SelectItem>();

		equip = equi.buscaEquipamento();
		for (int i = 0; equip.size() > i; i++) {
			SelectItem item = new SelectItem(equip.get(i).getCodigo(), equip.get(i).getNome());
			lista.add(item);
		}
		return lista;
	}

	public void setEquip(List<EntidadeEquipamento> equip) {
		this.equip = equip;
	}

	public List<SelectItem> getSitu() throws NamingException {
		Situacao situa = (Situacao) ServiceLocator
				.getService("situacaoBean/remote");

		List<SelectItem> lista = new ArrayList<SelectItem>();

		situ = situa.busca();
		for (int i = 0; situ.size() > i; i++) {
			SelectItem item = new SelectItem(situ.get(i).getCodigo(), situ.get(i).getNome());
			lista.add(item);
		}
		return lista;
	}

	public void setSitu(List<EntidadeSituacao> situ) {
		this.situ = situ;
	}

	public EntidadeEquipamento getEquipamento() {
		return equipamento;
	}

	public void setEquipamento(EntidadeEquipamento equipamento) {
		this.equipamento = equipamento;
	}

	public String enviar() throws NamingException {
		Equipamento equi = (Equipamento) ServiceLocator
				.getService("equipamentoBean/remote");
		
		if(equi.getcodigo() != 0)
		{
			equipamento.setCodigo(equi.getcodigo());
			setEquipamento(getEquipamento());
			equi.AlterarEquipamento(getEquipamento());
		}
		else
		{
			equi.gravar(getEquipamento());
		}
		setEquipamento(null);
		return "enviado";

	}
	public String busca_equip() throws NamingException
	{
		Equipamento equi = (Equipamento) ServiceLocator
		.getService("equipamentoBean/remote");
		
		int cod = Integer.parseInt(getEquipamentos());
		setEquipamento(equi.buscaEquicod(cod));
		return null;
	}
	public String deletar() throws NamingException
	{
		Equipamento equi = (Equipamento) ServiceLocator
		.getService("equipamentoBean/remote");
		
		equipamento.setCodigo(equi.getcodigo());
		equi.removeEquipamento(getEquipamento());
		setEquipamento(null);
		return null;
	}
}
